import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

pd.set_option('display.max_rows', None, 'display.max_columns', None, 'display.max_colwidth', 1000, 'display.expand_frame_repr', False)

# 使用小型共享单车数据集，完成以下操作（hour.csv）
# 1.导入必要的库（7分）
# 2.导入数据（7分）
df=pd.read_csv(r'../../../../../large_data/共享单车/hour.csv')
# 3.查看数据信息（信息函数）（8分）
print(df.info())
print('-----------------column names--------------------')
# 4.查看列名（8分）
print(df.columns)
# 5.绘制小时和季节影响点线图
# a)使用season和hr进行分组，按照hr排序，求cnt均值（10分）
print('--------------------group by and sort-----------------------------')
# https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.groupby.html
# g1=df.groupby(['season','hr'],sort='hr')
g1=df.groupby(['season','hr'],sort=True)
print(g1.agg(np.mean)['cnt'])
# b)重置索引值（10分）
df=df.reset_index()
print(df[:5])
# c)绘制点线图（10分）
# d)X为hr，y为cnt，绘制4条点线图（10分）
sns.pointplot(x=df['hr'],y=df['cnt'],hue=df['season'],data=df)
plt.show()
# 6.绘制热力图
# a)查看['temp', 'atemp', 'hum', 'windspeed', 'cnt']的皮尔逊系数（10分）
# b)绘制热力图（10分）
# c)热力图上标有数值（10分）
x=np.c_[df['temp'],df['atemp'],df['hum'],df['windspeed'],df['cnt']]
df2=pd.DataFrame(x)
co=df2.corr()
sns.heatmap(co,annot=True)
plt.show()